#define _CRT_SECURE_NO_WARNINGS 1
#include <iostream>
#include <string>
#include <map>
#include <vector>
using namespace std;
map<char, int> hasha;
map<char, int> hashb;
//int main()
//{
//    int n = 0;
//    cin >> n;
//    string s;
//    cin >> s;
//    cerr << s << endl;
//    int count = 0;
//    hasha[s[0]]++;
//    for (int i = 1;i < n;i++)
//    {
//        //cout<<s[i]<<endl;
//        hasha[s[i]]++;
//        int sum = 0;
//        count += hashb[s[i]];
//        // for(auto a:hashb) cout<<a.first<<":"<<a.second<<"|";
//        // cout<<endl;
//        // cout<<"count="<<count<<endl;
//        // for(auto a:hasha) cout<<a.first<<":"<<a.second<<"|";
//        // cout<<endl;
//        for (auto a : hasha)
//        {
//            if (a.first != s[i]) sum += a.second;
//        }
//        //cout<<"sum="<<sum<<endl;
//        hashb[s[i]] += sum;
//        //cout<<"------"<<endl;
//    }
//    cout << count << endl;
//    return 0;
//}
int main()
{
    int n = 0;
    cin >> n;
    string s;
    cin >> s;
    map<char, int> m;
    vector<int> dpa(s.size(), 0);
    for (int i = 0;i < s.size();i++)
    {
        for (auto& a : m)
        {
            if (a.first != s[i]) dpa[i] += a.second;
        }
        m[s[i]]++;
    }
    // for(auto& a:dpa) cerr<<a<<" ";
    // cerr<<endl;
    vector<int> dpb(s.size(), 0);
    map<char, int> m2;
    int sum = 0;
    map<char, bool> m3;
    for (int i = 0;i < s.size();i++)
    {
        //cerr<<"s[i]="<<s[i]<<",m3si="<<m2[s[i]]<<endl;
        if (m3[s[i]] == true)
        {
            //m2[s[i]]+=dpa[i];
            sum += m2[s[i]];
        }
        m3[s[i]] = true;
        m2[s[i]] += dpa[i];
        //cerr<<sum<<endl;
    }
    cout << sum << endl;
    return 0;
}

